﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAL.Entities;
using BAL;

namespace GrouponDesktop.AbmProveedor
{
    public partial class CambiarPassword : Form
    {
        private bool IsProveedor{set;get;}
        private int Id { set; get; }
        public CambiarPassword(int IntId, bool _isProveedor)
        {
            InitializeComponent();
            IsProveedor = _isProveedor;
            Id = IntId;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtPassword.Text != string.Empty && txtPasswordConfirmacion.Text != string.Empty)
                {
                    if (txtPasswordConfirmacion.Text == txtPassword.Text)
                    {
                        UsuarioEntity user = new UsuarioEntity();
                        UsuarioBAL userProxy = new UsuarioBAL();
                        if (IsProveedor)
                        {
                            //Cambiamos el password para un proveedor
                            //Buscamos el id de usaurio
                            ProveedorEntity provTempo = new ProveedorEntity();
                            ProveedorBAL proxy = new ProveedorBAL();
                            provTempo.IntIdProveedor = Id;
                            provTempo = proxy.GetProveedorById(provTempo);

                            //Buscamos el usuario
                            user.IntIdUsuario = provTempo.IntIdUsuario;
                        }
                        else
                        {
                            //Cambiamos el password para un cliente
                            //Buscamos el id de usaurio
                            UsuarioEntity userTempo = new UsuarioEntity();
                            UsuarioBAL proxy = new UsuarioBAL();
                            userTempo.IntIdUsuario = Id;
                            userTempo = proxy.GetUsuarioById(userTempo);

                            //Buscamos el usuario
                            user.IntIdUsuario = userTempo.IntIdUsuario;
                        }

                        user = userProxy.GetUsuarioById(user);
                        //Cambiamos el password
                        user.VarPassword = txtPassword.Text;
                        userProxy.SetPasswordByUsername(user);
                        this.Close();

                    }
                    else
                    {
                        lblErrores.Text = "Ambos password deben ser iguales";
                    }
                }
                else
                {
                    lblErrores.Text = "Debe completar ambos campos";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error: " + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
    }
}
